// 类型定义插件
// 这个插件将使共享类型在整个Nuxt应用中可用

import type { User, ApiResponse } from '../types';

// 扩展Nuxt的类型定义，使其包含我们的自定义类型
declare module '#app' {
  interface NuxtApp {
    $user: User | null;
  }
}

// 扩展Vue的类型定义
declare module '@vue/runtime-core' {
  interface ComponentCustomProperties {
    $user: User | null;
  }
}

// 导出插件
export default defineNuxtPlugin(() => {
  return {
    provide: {
      // 可以在这里提供与类型相关的辅助函数
      isApiSuccess: <T>(response: ApiResponse<T>): boolean => {
        return response.success === true;
      }
    }
  };
});